// Mogry
// Generated by Microsoft (R) HLSL Shader Compiler 9.26.952.2844
//
// Parameters:
//
//   float4 DirLightColors;
//   float4 DirLightDirections;
//   float4 FirstLightFlag;
//   float4 PointLightColors[2];
//   float4 PointLightParams[2];
//   float4 PointLightPositions[2];
//   sampler2D _sampler_01;
//   sampler2D _sampler_diffuseColor;
//   sampler2D _sampler_shininess;
//   sampler2D _sampler_specularColor;
//   float albedo;
//   float3 ambientColor;
//   float3 ambientLightColor;
//   float backLightEdge;
//   float colorLimit;
//   samplerCUBE cubeReflectMap;
//   float drawEnvBlendRatio;
//   samplerCUBE drawEnvCubeBlurMap;
//   samplerCUBE drawEnvCubeMap;
//   sampler2D edgeControlFuzzColorMap;
//   float3 envMapColor;
//   float4 externalEdgeControlColor;
//   float externalReflectMapScale;
//   float4 fogColor;
//   float fresnelBias;
//   float fresnelInvDiffBias;
//   sampler2D fuzzColorMap;
//   float fuzzPower;
//   float3 grace00;
//   float3 grace10;
//   float3 grace11;
//   float3 grace1_1;
//   float3 grace20;
//   float3 grace21;
//   float3 grace22;
//   float3 grace2_1;
//   float3 grace2_2;
//   float3 latitudeParam;
//   sampler2D lightToneMap;
//   float4 modulateColor;
//   samplerCUBE reflectBlurMap;
//   float reflectBlurMask;
//   float3 reflectScale;
//   float reverseRatio;
//   float4 rootPos;
//   float3 scatterColor;
//   float4 shadowColor;
//   float4 shadowFadeParam;
//   sampler2D shadowMap;
//   float4 shadowOffset0[4];
//   float4 shadowOffset1[4];
//   float4 shadowProjMatrix0[4];
//   float4 shadowProjMatrix1[4];
//   float4 shadowProjMatrix2[4];
//   float4 shadowProjMatrix3[4];
//   float4 shadowSplitRange;
//   float4 snowDiffuseUVScale;
//   float specluarMaskingShadow;
//   float4 weatherFactorRatio;
//   float4 weatherOffset;
//   sampler2D weatherSnowDiffuseSampler00;
//
//
// Registers:
//
//   Name                        Reg   Size
//   --------------------------- ----- ----
//   shadowOffset0               c21      4
//   shadowOffset1               c25      4
//   PointLightPositions         c29      2
//   PointLightColors            c31      2
//   PointLightParams            c33      2
//   shadowProjMatrix0           c35      2
//   shadowProjMatrix1           c37      2
//   shadowProjMatrix2           c39      2
//   shadowProjMatrix3           c41      2
//   ambientLightColor           c43      1
//   FirstLightFlag              c44      1
//   DirLightDirections          c45      1
//   DirLightColors              c46      1
//   fuzzPower                   c47      1
//   backLightEdge               c48      1
//   scatterColor                c49      1
//   reverseRatio                c50      1
//   envMapColor                 c51      1
//   grace00                     c52      1
//   grace1_1                    c53      1
//   grace10                     c54      1
//   grace11                     c55      1
//   grace2_2                    c56      1
//   grace2_1                    c57      1
//   grace20                     c58      1
//   grace21                     c59      1
//   grace22                     c60      1
//   shadowFadeParam             c61      1
//   shadowSplitRange            c62      1
//   shadowColor                 c63      1
//   rootPos                     c64      1
//   latitudeParam               c65      1
//   ambientColor                c66      1
//   specluarMaskingShadow       c67      1
//   fogColor                    c68      1
//   reflectBlurMask             c69      1
//   drawEnvBlendRatio           c70      1
//   reflectScale                c71      1
//   fresnelBias                 c72      1
//   fresnelInvDiffBias          c73      1
//   colorLimit                  c74      1
//   albedo                      c75      1
//   externalEdgeControlColor    c76      1
//   externalReflectMapScale     c77      1
//   weatherOffset               c78      1
//   weatherFactorRatio          c79      1
//   snowDiffuseUVScale          c80      1
//   modulateColor               c81      1
//   lightToneMap                s0       1
//   fuzzColorMap                s1       1
//   cubeReflectMap              s2       1
//   reflectBlurMap              s3       1
//   drawEnvCubeMap              s4       1
//   shadowMap                   s5       1
//   drawEnvCubeBlurMap          s6       1
//   edgeControlFuzzColorMap     s7       1
//   _sampler_diffuseColor       s8       1
//   _sampler_01                 s9       1
//   _sampler_specularColor      s10      1
//   _sampler_shininess          s11      1
//   weatherSnowDiffuseSampler00 s12      1
//
//
// Default values:
//
//   ambientLightColor
//     c43  = { 0, 0, 0, 0 };
//
//   fuzzPower
//     c47  = { 1, 0, 0, 0 };
//
//   backLightEdge
//     c48  = { -0.8, 0, 0, 0 };
//
//   scatterColor
//     c49  = { 1, 1, 1, 0 };
//
//   reverseRatio
//     c50  = { 1, 0, 0, 0 };
//
//   latitudeParam
//     c65  = { 1, 0, 1, 0 };
//
//   ambientColor
//     c66  = { 0, 0, 0, 0 };
//
//   specluarMaskingShadow
//     c67  = { 0, 0, 0, 0 };
//
//   fogColor
//     c68  = { 1, 1, 1, 0 };
//
//   reflectBlurMask
//     c69  = { 1, 0, 0, 0 };
//
//   drawEnvBlendRatio
//     c70  = { 1, 0, 0, 0 };
//
//   reflectScale
//     c71  = { 1, 1, 1, 0 };
//
//   fresnelBias
//     c72  = { 1, 0, 0, 0 };
//
//   fresnelInvDiffBias
//     c73  = { 0, 0, 0, 0 };
//
//   colorLimit
//     c74  = { 1, 0, 0, 0 };
//
//   albedo
//     c75  = { 0.5, 0, 0, 0 };
//
//   externalReflectMapScale
//     c77  = { 1, 0, 0, 0 };
//
//   weatherFactorRatio
//     c79  = { 1, 1, 1, 1 };
//
//   modulateColor
//     c81  = { 1, 1, 1, 1 };
//

    ps_3_0
    def c0, 0.949999988, 100, 1, 3
    def c1, 0.5, 0.429042995, 0.743125021, 0.886227012
    def c2, 1, 0, 0.25, -0.125
    def c3, 0.247707993, 0.85808599, 1.02332795, -0.600000024
    def c4, 3.33333325, 0.899999976, 1, 0.800000012
    def c5, 0.100000001, 0.200000003, 0.300000012, 0.400000006
    def c6, 0.298999995, 0.587000012, 0.114, 9.99999997e-007
    def c7, -9.99999975e-005, -13.2877121, 0.349999994, 0.00100000005
    def c8, -0.5, 0.5, 2, 0
    dcl_texcoord_pp v0
    dcl_texcoord2 v1.z
    dcl_texcoord1 v2.xyz
    dcl_texcoord3 v3.xyz
    dcl_texcoord4 v4
    dcl_texcoord6_pp v5
    dcl_2d s0
    dcl_2d s1
    dcl_cube s2
    dcl_cube s3
    dcl_cube s4
    dcl_2d s5
    dcl_cube s6
    dcl_2d s7
    dcl_2d s8
    dcl_2d s9
    dcl_2d s10
    dcl_2d s11
    dcl_2d s12
    mov_pp r0.x, c5.x
    add_pp r0.x, r0.x, c62.x
    add r0.x, r0.x, -v1.z
    mul r1, c38, v2.y
    mad r1, v2.x, c36, r1
    mad r1, v2.z, c40, r1
    add r1, r1, c42
    rcp r0.y, r1.w
    mul r1.xy, r1, r0.y
    add r0.yzw, r1.xxyz, c25.xxyz
    mul r2, c37, v2.y
    mad r2, v2.x, c35, r2
    mad r2, v2.z, c39, r2
    add r2, r2, c41
    rcp r1.w, r2.w
    mul r2.xy, r2, r1.w
    add r3.xyz, r2, c21
    cmp r0.xyz, r0.x, r3, r0.yzww
    texld r3, r0, s5
    add r0.x, -r0.z, r3.x
    cmp_pp r0.x, r0.x, c2.x, c2.y
    add r0.yzw, r1.xxyz, c26.xxyz
    add r3.xyz, r2, c22
    add_pp r1.w, c62.x, -v1.z
    add r4.xyz, r1.w, c5.yzww
    cmp r0.yzw, r4.x, r3.xxyz, r0
    texld r3, r0.yzzw, s5
    add r0.y, -r0.w, r3.x
    cmp_pp r0.y, r0.y, c2.x, c2.y
    add_pp r0.x, r0.x, r0.y
    add r0.yzw, r1.xxyz, c27.xxyz
    add r1.xyz, r1, c28
    add r3.xyz, r2, c23
    add r2.xyz, r2, c24
    cmp r1.xyz, r4.z, r2, r1
    cmp r0.yzw, r4.y, r3.xxyz, r0
    texld r2, r0.yzzw, s5
    add r0.y, -r0.w, r2.x
    cmp_pp r0.y, r0.y, c2.x, c2.y
    add_pp r0.x, r0.x, r0.y
    texld r2, r1, s5
    add r0.y, -r1.z, r2.x
    cmp_pp r0.y, r0.y, c2.x, c2.y
    add_pp r0.x, r0.x, r0.y
    mul_pp r0.y, r0.x, c2.z
    mad r0.x, r0.x, -c2.z, c2.x
    add_pp r0.z, -c61.x, v1.z
    mul_sat_pp r0.z, r0.z, c61.y
    mad_sat_pp r0.x, r0.z, r0.x, r0.y
    lrp_pp r1.x, c61.w, c61.z, r0.x
    add_pp r0.x, -r1.x, c0.z
    mov_pp r0.z, c0.z
    mad_pp r0.x, r0.x, -c63.w, r0.z
    add_pp r0.yw, r0.z, -c44.xxzy
    max_pp r1.xy, r0.x, r0.ywzw
    add r2.xyz, -c29, v2
    dp3 r0.y, r2, r2
    rsq r0.y, r0.y
    mul_pp r2.xyz, r2, r0.y
    rcp_pp r0.y, r0.y
    nrm_pp r3.xyz, v3
    dp3_pp r0.w, r3, -r2
    mul_sat_pp r1.z, r0.w, c2.w
    mad_pp r1.z, r1.z, c50.x, r0.w
    add_pp r1.w, r1.z, c0.z
    mul_pp r2.w, r1.y, r1.w
    mad r1.w, r1.w, -r1.y, r1.w
    mad_pp r1.w, r1.w, c5.y, r2.w
    add_pp r1.w, r1.w, -c0.z
    mad_pp r1.w, r1.w, c1.x, c1.x
    add_pp r4.x, -r1.w, c0.z
    mov_pp r4.y, c1.x
    texld_pp r4, r4, s0
    mul_sat_pp r1.w, r1.y, r1.z
    mov_sat_pp r1.z, -r1.z
    texld r5, v4, s9
    lrp_pp r6.xyz, r5.y, r4, r1.w
    pow r1.w, r0.y, c33.z
    add_pp r0.y, -r0.y, c33.w
    max_pp r2.w, r0.y, c7.w
    mul r0.y, r1.w, c33.w
    rcp r0.y, r0.y
    mul_pp r0.y, r2.w, r0.y
    mul_pp r4.xyz, r0.y, c31
    nrm_pp r7.xyz, v5
    mad_pp r8.xyz, r7, c48.x, -r2
    dp3_pp r0.y, r8, r7
    add_pp r1.w, -r0_abs.w, c0.z
    mov_sat_pp r0.w, r0.w
    mul_pp r0.w, r1.y, r0.w
    max_pp r2.w, r1.w, c2.y
    mul_sat_pp r0.y, r0.y, r2.w
    mul_pp r8.xyz, r0.y, c49
    mul_pp r8.xyz, r4, r8
    mad_pp r6.xyz, r4, r6, r8
    mul_pp r6.xyz, r1.y, r6
    dp3_pp r0.y, r3, -c45
    mul_sat_pp r1.w, r0.y, c2.w
    mad_pp r1.w, r1.w, c50.x, r0.y
    add_pp r2.w, r1.w, c0.z
    mul_pp r3.w, r1.x, r2.w
    mad r2.w, r2.w, -r1.x, r2.w
    mad_pp r2.w, r2.w, c5.y, r3.w
    add_pp r2.w, r2.w, -c0.z
    mad_pp r2.w, r2.w, c1.x, c1.x
    add_pp r8.x, -r2.w, c0.z
    mov_pp r8.y, c1.x
    texld_pp r8, r8, s0
    mul_sat_pp r2.w, r1.x, r1.w
    mov_sat_pp r1.w, -r1.w
    lrp_pp r9.xyz, r5.y, r8, r2.w
    mov_pp r5.x, c48.x
    mad_pp r8.xyz, r7, r5.x, -c45
    dp3_pp r2.w, r8, r7
    add_pp r3.w, -r0_abs.y, c0.z
    mov_sat_pp r0.y, r0.y
    mul_pp r0.y, r1.x, r0.y
    max_pp r4.w, r3.w, c2.y
    mul_sat_pp r2.w, r2.w, r4.w
    mul_pp r8.xyz, r2.w, c49
    mul_pp r8.xyz, r8, c46
    mad_pp r8.xyz, c46, r9, r8
    mul_pp r8.xyz, r1.x, r8
    dp3_pp r2.w, r4, c6
    mul_pp r1.z, r1.z, r2.w
    mul_pp r0.w, r0.w, r2.w
    mul_pp r1.z, r1.z, c50.x
    mul_pp r6.w, r1.z, c7.z
    mov r9.xyz, c6
    dp3_pp r1.z, c46, r9
    mul_pp r1.w, r1.w, r1.z
    mad_pp r0.y, r0.y, r1.z, r0.w
    mul_pp r0.w, r1.w, c50.x
    mul_pp r8.w, r0.w, c7.z
    add_pp r6, r6, r8
    add r8.xyz, -c30, v2
    dp3 r0.w, r8, r8
    rsq r0.w, r0.w
    rcp_pp r1.z, r0.w
    mul_pp r8.xyz, r8, r0.w
    pow r0.w, r1.z, c34.z
    add_pp r1.z, -r1.z, c34.w
    max_pp r2.w, r1.z, c7.w
    mul r0.w, r0.w, c34.w
    rcp r0.w, r0.w
    mul_pp r0.w, r2.w, r0.w
    mul_pp r10.xyz, r0.w, c32
    mad_pp r11.xyz, r7, c48.x, -r8
    dp3_pp r0.w, r11, r7
    dp3_pp r1.z, r3, -r8
    add_pp r1.w, -r1_abs.z, c0.z
    max_pp r2.w, r1.w, c2.y
    mul_sat_pp r0.w, r0.w, r2.w
    mul_pp r11.xyz, r0.w, c49
    mul_pp r11.xyz, r10, r11
    mov_pp r12.y, c1.x
    mul_sat_pp r0.w, r1.z, c2.w
    mad_pp r0.w, r0.w, c50.x, r1.z
    mov_sat_pp r1.z, r1.z
    mad_pp r1.w, r0.w, c1.x, c1.x
    add_pp r12.x, -r1.w, c0.z
    texld_pp r12, r12, s0
    mov_sat_pp r1.w, r0.w
    mov_sat_pp r0.w, -r0.w
    lrp_pp r13.xyz, r5.y, r12, r1.w
    mul_pp r1.w, r5.z, c0.w
    mad_pp r5.xyz, r10, r13, r11
    dp3_pp r2.w, r10, c6
    mul_pp r0.w, r0.w, r2.w
    mad_pp r0.y, r1.z, r2.w, r0.y
    mul_pp r0.w, r0.w, c50.x
    mul_pp r5.w, r0.w, c7.z
    add_pp r5, r6, r5
    add_sat_pp r0.w, -r5.w, c0.z
    dp3 r1.z, r7, r3
    add r1.z, r1.z, r1.z
    mad_pp r6.xyz, r3, -r1.z, r7
    dp3_pp r1.z, -r7, r3
    texld_pp r7, r6, s2
    texld_pp r11, r6, s3
    lrp_pp r12, c69.x, r7, r11
    texld_pp r7, r6, s4
    texld r11, r6, s6
    lrp_pp r13, c69.x, r7, r11
    lrp_pp r7, c70.x, r12, r13
    mul_pp r7.xyz, r7.w, r7
    mul_pp r7.xyz, r7, c71
    abs_sat_pp r2.w, r1.z
    mad_pp r11.x, r1.z, c8.x, c8.y
    add r1.z, -r2.w, c0.z
    mul r2.w, r1.z, r1.z
    mul r2.w, r2.w, r2.w
    mul_pp r1.z, r1.z, r2.w
    lrp_sat_pp r2.w, r1.z, r0.z, c72.x
    mul_pp r1.z, r1.w, r2.w
    add_pp r1.w, -r2.w, c73.x
    add_sat_pp r1.w, r1.w, c0.z
    mul_pp r1.z, r1.z, c77.x
    mul_pp r7.xyz, r7, r1.z
    add_pp r1.z, c3.w, v0.w
    mul_sat_pp r1.z, r1.z, c4.x
    add_pp r1.z, -r1.z, c0.z
    mad_pp r1.z, r1.z, -c4.y, c4.z
    add_pp r2.w, -r1.z, c0.z
    mul_pp r11.zw, c80.xyxy, v4.xyxy
    texld_pp r12, r11.zwzw, s12
    max_pp r3.w, r12.w, c4.w
    mad r2.w, r12.w, r2.w, -r3.w
    mad_pp r1.z, r1.z, r2.w, r3.w
    mul_pp r1.z, r1.z, c78.w
    mul_pp r1.z, r1.z, c79.x
    mul_pp r13.xyz, r12, r1.z
    mov_sat_pp r13.xyz, r13
    texld_pp r14, v4, s8
    mad_pp r12.xyz, r12, r1.z, r14
    mad_pp r12.xyz, r14, -r13, r12
    mad_sat_pp r7.xyz, r12, r1.w, r7
    mul_pp r7.xyz, r7, r7
    mov r12.yw, c1
    mul_pp r12.xyz, r12.y, c60
    add r13, -c64.xyzx, v2.xyzx
    dp3 r1.z, r13.yzww, r13.yzww
    rsq r1.z, r1.z
    mul r13, r13, r1.z
    mad r3, r13, c1.x, r3.xyzx
    dp3 r1.z, r3.yzww, r3.yzww
    rsq r1.z, r1.z
    mul_pp r3, r3, r1.z
    mul_pp r13.xyz, r3.yzyw, r3.yzww
    mad_pp r1.z, r3.x, r3.x, -r13.x
    mul_pp r13.xyw, r13.y, c58.xyzz
    mul_pp r13.xyw, r13, c1.z
    mad_pp r12.xyz, r12, r1.z, r13.xyww
    mad_pp r12.xyz, c52, r12.w, r12
    mov r3.x, c3.x
    mad_pp r12.xyz, c58, -r3.x, r12
    mul_pp r1.zw, r3.z, r3.xyyw
    mul_pp r13.xyw, r1.w, c59.xyzz
    mad_pp r13.xyz, c56, r13.z, r13.xyww
    mad_pp r13.xyz, c57, r1.z, r13
    mad_pp r12.xyz, r13, c3.y, r12
    mul_pp r13.xyz, r3.y, c53
    mad_pp r3.xyw, c55.xyzz, r3.w, r13.xyzz
    mad_pp r3.xyz, c54, r3.z, r3.xyww
    mad_pp r3.xyz, r3, c3.z, r12
    mul_pp r3.xyz, r3, c75.x
    mul_pp r3.xyz, r3, c51
    mov_sat_pp r12.xyz, c66
    mad_pp r3.xyz, r12, r12, r3
    mov_sat_pp r12.xyz, c43
    mad_pp r3.xyz, r12, r12, r3
    mul_pp r3.xyz, r7, r3
    mul_pp r3.xyz, r0.w, r3
    mad_pp r3.xyz, r5, r7, r3
    max_pp r5.xyz, r3, c6.w
    rsq_pp r0.w, r5.x
    rcp_pp r3.x, r0.w
    rsq_pp r0.w, r5.y
    rsq_pp r1.z, r5.z
    rcp_pp r3.z, r1.z
    rcp_pp r3.y, r0.w
    dp3_sat_pp r0.w, r6, -r2
    add r1.z, r0.w, c7.x
    log_pp r0.w, r0.w
    cmp_pp r0.w, r1.z, r0.w, c7.y
    texld r2, v4, s11
    mad_pp r1.z, r2.z, c0.y, c0.z
    mul_pp r0.w, r0.w, r1.z
    exp_pp r0.w, r0.w
    mul_pp r2.xyz, r4, r0.w
    mul_pp r2.xyz, r1.y, r2
    dp3_sat_pp r0.w, r6, -c45
    dp3_sat_pp r1.y, r6, -r8
    add r1.w, r0.w, c7.x
    log_pp r0.w, r0.w
    cmp_pp r0.w, r1.w, r0.w, c7.y
    mul_pp r0.w, r1.z, r0.w
    exp_pp r0.w, r0.w
    mul_pp r4.xyz, r0.w, c46
    mad_pp r2.xyz, r4, r1.x, r2
    add r0.w, r1.y, c7.x
    log_pp r1.x, r1.y
    cmp_pp r0.w, r0.w, r1.x, c7.y
    mul_pp r0.w, r1.z, r0.w
    exp_pp r0.w, r0.w
    mad_pp r1.xyz, r10, r0.w, r2
    texld r2, v4, s10
    mul_sat_pp r2.xyz, r2, c0.x
    mul_pp r2.xyz, r2, r2
    mul_pp r1.xyz, r1, r2
    lrp_sat_pp r1.w, r0.x, r0.z, c67.x
    mul_pp r0.xzw, r1.xyyz, r1.w
    max_pp r1.xyz, r0.xzww, c6.w
    rsq_pp r0.x, r1.x
    rcp_pp r2.x, r0.x
    rsq_pp r0.x, r1.y
    rsq_pp r0.z, r1.z
    rcp_pp r2.z, r0.z
    rcp_pp r2.y, r0.x
    mul_pp r0.xzw, r2.xyyz, v0.xyyz
    mad_pp r0.xzw, v0.xyyz, r3.xyyz, r0
    dp3_pp r1.x, c43, r9
    mad_pp r0.y, r0.y, c8.z, r1.x
    mov_pp r11.y, c1.x
    texld_pp r1, r11, s1
    texld_pp r2, r11, s7
    mov_sat_pp r2.xyz, r2
    mul_pp r2.xyz, r2, v0
    mov_sat_pp r1.xyz, r1
    mul_pp r1.xyz, r1, v0
    mul_pp r1.xyz, r1, c47.x
    mad_pp r0.xyz, r1, r0.y, r0.xzww
    mad_pp r0.xyz, r2, c76, r0
    min_pp r1.xyz, c74.x, r0
    min_sat_pp r0.x, c68.w, v5.w
    lrp_pp r2.xyz, r0.x, c68, r1
    texld_pp r0, v4.zwzw, s9
    mov_pp r2.w, r0.x
    mul_pp r0, r2, c81
    mad_pp r0.xyz, r0, c65.x, c65.y
    mov_pp oC0.w, r0.w
    mul_pp oC0.xyz, r0, c65.z
	
	mov oC0.xyzw, c8.wwww	

// approximately 330 instruction slots used (19 texture, 311 arithmetic)
 